package cn.wolfcode.rbac.service;

import cn.wolfcode.rbac.domain.Employee;
import cn.wolfcode.rbac.qo.EmployeeQo;
import cn.wolfcode.rbac.web.vo.AdminStateVo;
import cn.wolfcode.rbac.web.vo.EmployeeRoleVo;
import com.github.pagehelper.PageInfo;

public interface IEmployeeService {

    /**
     * 根据条件查询所有员工信息
     * @param employeeQo
     * @return
     */
    PageInfo<Employee> list(EmployeeQo employeeQo);

    /**
     * 根据id查询员工信息
     * @param id
     * @return
     */
    Employee get(Long id);


    /**
     * 保存员工信息
     * @param employee
     */
    void save(EmployeeRoleVo employeeRoleVo);

    /**
     * 更新员工信息
     * @param employee
     */
    void update(EmployeeRoleVo employeeRoleVo);

    /**
     * 根据id删除员工信息
     * @param id
     */
    void delete(Long id,Long userId);

    /**
     * 更新员工管理员状态
     * @param adminStateVo
     */
    void updateState(AdminStateVo adminStateVo);
}
